﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Common;

namespace Entidades
{
    public class Guion : Entidad
    {
        #region Constructores

        /// <summary>
        /// Constructor por defecto
        /// </summary>
        public Guion()
        {
        }

        #endregion

        #region Entidad Inherited Members & Methods
        public override string Descriptor
        {
            get
            {
                //return base.Descriptor;
                return String.Format("Ep. {0} - {1}", this.Episodio.HasValue ? this.Episodio.Value.ToString() : "0", this.Titulo);
            }
            //set
            //{
            //    base.Descriptor = value;
            //}
        }
        #endregion

        #region Propiedades

        /// <summary>
        /// Proyecto
        /// </summary>
        public virtual Proyecto Proyecto { get; set; }

        /// <summary>
        /// Ítems del Guión
        /// </summary>
        public virtual IList<GuionItem> Items { get; set; }

        /// <summary>
        /// Transición de Estados del Guión
        /// </summary>
        public virtual IList<GuionEstadoTransicion> TransicionDeEstados { get; set; }

        /// <summary>
        /// Transición de Autorizaciones del Guión
        /// </summary>
        public virtual IList<GuionAutorizacionTransicion> TransicionDeAutorizaciones { get; set; }

        /// <summary>
        /// Estado del Guión
        /// </summary>
        public virtual GuionEstado Estado { get; set; }

        /// <summary>
        /// Director
        /// </summary>
        public virtual Usuario Director { get; set; }

        /// <summary>
        /// Traductor
        /// </summary>
        public virtual Usuario Traductor { get; set; }

        /// <summary>
        /// Adaptador
        /// </summary>
        public virtual Usuario Adaptador { get; set; }

        /// <summary>
        /// Mezclador
        /// </summary>
        public virtual Usuario Mezclador { get; set; }

        /// <summary>
        /// Temporizador
        /// </summary>
        public virtual Usuario Temporizador { get; set; }

        /// <summary>
        /// Título
        /// </summary>
        public virtual string Titulo { get; set; }

        /// <summary>
        /// Nro. de Episodio
        /// </summary>
        public virtual int? Episodio { get; set; }

        /// <summary>
        /// Duración
        /// </summary>
        public virtual float Duracion { get; set; }

        /// <summary>
        /// Cantidad de Páginas
        /// </summary>
        public virtual int Paginas { get; set; }

        /// <summary>
        /// Cantidad de Loops
        /// </summary>
        public virtual int Loops { get; set; }

        /// <summary>
        /// Cantidad de Personajes
        /// </summary>
        public virtual int Personajes { get; set; }

        /// <summary>
        /// Costos del Guión
        /// </summary>
        public virtual GuionCosto Costo { get; set; }

        /// <summary>
        /// Comentarios
        /// </summary>
        public virtual string Comentarios { get; set; }

        #region Auditoria

        /// <summary>
        /// Fecha Creación
        /// </summary>
        public virtual DateTime FechaCreacion { get; set; }

        /// <summary>
        /// Usuario Creación
        /// </summary>
        public virtual Usuario UsuarioCreacion { get; set; }

        /// <summary>
        /// Fecha Última Modificación
        /// </summary>
        public virtual DateTime? FechaUltimaModificacion { get; set; }

        /// <summary>
        /// Usuario Última Modificación
        /// </summary>
        public virtual Usuario UsuarioUltimaModificacion { get; set; }

        /// <summary>
        /// Fecha Terminación
        /// </summary>
        public virtual DateTime? FechaTerminacion { get; set; }

        /// <summary>
        /// Usuario Terminacion
        /// </summary>
        public virtual Usuario UsuarioTerminacion { get; set; }

        /// <summary>
        /// Fecha Cancelación
        /// </summary>
        public virtual DateTime? FechaCancelacion { get; set; }

        /// <summary>
        /// Usuario Cancelación
        /// </summary>
        public virtual Usuario UsuarioCancelacion { get; set; }

        ///// <summary>
        ///// Importación
        ///// </summary>
        //public virtual GuionImportacion Importacion { get; set; }

        #endregion

        #endregion

    }
}
